<?php

/**
 * Created by PhpStorm.
 * Author: ls
 * Time: 2023/9/20 10:32
 * Desc:
 */
abstract class Contract_Api_Order
{
    use Trait_Api_Image;

    use Trait_Api_Content;

    use Trait_Api_Response;

    /**
     * 订单列表
     * @param int $mid
     * @param array $params
     * @return array
     */
    abstract function list(int $mid, array $params = array()): array;

    /**
     * 订单详情
     * @param int $mid
     * @param int $id
     * @return array
     * @throws Exception
     */
    abstract function detail(int $mid, int $id): array;

    /**
     * 游客列表
     * @param int $mid
     * @param int $id
     * @return array
     * @throws Exception
     */
    abstract function get_traveller_list(int $mid, int $id): array;

    /**
     * 取消订单
     * @param int $mid
     * @param int $ordersn
     * @return array
     * @throws Exception
     */
    abstract function cancel_order(int $mid, string $ordersn): array;

    /**
     * 消费订单
     * @param int $mid
     * @param int $id
     * @return array
     * @throws Exception
     */
    abstract function consume_order(int $mid, int $id): array;

    /**
     * 确认收获
     * @param int $mid
     * @param int $id
     * @return array
     * @throws Exception
     */
    abstract function express_confirm(int $mid, int $id): array;

    /**
     * 订单合同
     * @param int $mid
     * @param int $id
     * @return array
     * @throws Exception
     */
    abstract function get_contract_content(int $mid, int $id): array;

    /**
     * 订单状态
     * @param int $mid
     * @param int $id
     * @return array
     * @throws Exception
     */
    abstract function get_status(int $mid, int $id): array;

    /**
     * 订单快递信息
     * @param int $mid
     * @param string $ordersn
     * @return array
     * @throws Exception
     */
    abstract function get_express_progress(int $mid, string $ordersn): array;
}